using Godot;
using System;
using 游戏设定.基类;

public partial class 场景战斗 : Control
{
    [Export] private PackedScene 组件角色场景;
    [Export] private Button 按钮;
    [Export] private Marker2D[] 站位数组;

    private 组件战斗角色 战斗角色组件;
    private 组件战斗角色 战斗敌人组件;

    // 脚本的生命周期
    public override void _Ready()
    {
        GD.Print(站位数组.Length);

        var 随机生成的敌人数量 = new Random().Next(1, 5);
        for (int i = 0; i < 随机生成的敌人数量; i++)
        {
            战斗角色组件 = 组件角色场景.Instantiate<组件战斗角色>();

            C角色模型 角色 = new();
            角色.基础属性.名称 = "邋遢大叔" + i;
            角色.基础属性.等级 = 98;
            角色.战斗属性.血条上限 = 100;
            角色.战斗属性.当前血条 = 角色.战斗属性.血条上限;
            角色.战斗属性.蓝条上限 = 80;
            角色.战斗属性.当前蓝条 = 角色.战斗属性.蓝条上限;

            战斗角色组件.初始化(角色);
            战斗角色组件.Position = 站位数组[i].Position;
            AddChild(战斗角色组件);
        }

        // 按钮.Pressed += 按钮被点击;

        // // 测试 实例化一个角色组件 并 添加到场景上
        // 战斗角色组件 = 组件角色场景.Instantiate<组件战斗角色>();

        // C角色模型 角色 = new();
        // 角色.基础属性.名称 = "邋遢大叔A";
        // 角色.基础属性.等级 = 98;
        // 角色.战斗属性.血条上限 = 100;
        // 角色.战斗属性.当前血条 = 角色.战斗属性.血条上限;
        // 角色.战斗属性.蓝条上限 = 80;
        // 角色.战斗属性.当前蓝条 = 角色.战斗属性.蓝条上限;

        // 战斗角色组件.初始化(角色);
        // 战斗角色组件.Position = new Vector2(50, 50);
        // AddChild(战斗角色组件);

        // 战斗敌人组件 = 组件角色场景.Instantiate<组件战斗角色>();

        // C角色模型 敌人 = new();
        // 敌人.基础属性.名称 = "敌人A";
        // 敌人.基础属性.等级 = 88;
        // 敌人.战斗属性.血条上限 = 80;
        // 敌人.战斗属性.当前血条 = 敌人.战斗属性.血条上限;
        // 敌人.战斗属性.蓝条上限 = 60;
        // 敌人.战斗属性.当前蓝条 = 敌人.战斗属性.蓝条上限;

        // 战斗敌人组件.初始化(敌人);
        // 战斗敌人组件.Position = new Vector2(200, 50);
        // AddChild(战斗敌人组件);
    }

    private void 按钮被点击()
    {
        战斗角色组件.被攻击(6);
        战斗敌人组件.被攻击(8);
    }
}
